#ifndef DETECTOR_BASE_HPP
#define DETECTOR_BASE_HPP

#include <pcl/point_cloud.h>
#include <pcl/point_types.h>
#include <geometry_msgs/msg/point_stamped.hpp>
#include <rclcpp/rclcpp.hpp>
#include "rclcpp_lifecycle/lifecycle_node.hpp" 


namespace center_detection{

    class DetectorBase{
        
        public:

        using PointCloud = pcl::PointCloud<pcl::PointXYZI>::Ptr;

        DetectorBase() = default;
        virtual ~DetectorBase() = default;

        virtual bool detectCenter(PointCloud cloud, geometry_msgs::msg::PointStamped& center_point) = 0;
        //virtual void setParameters(const std::shared_ptr<rclcpp::Node>& node) = 0;
        virtual void setParameters(rclcpp_lifecycle::LifecycleNode* node) = 0;

    };
}

#endif